#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 创建一个程序，带有一个TabWidget作为标签页
    // 提供两个按钮，可以创建新的标签页，并能删除选中的标签页
    // 并且当我们切换标签页的时候，也能感知到变化

    // 现在每个标签页中添加一个label
    QLabel* label1 = new QLabel(ui->tab); // 指定的父元素不再是this，而是tab(不用做额外的添加，指定父元素 )
    label1->setText("第1个标签页");
    label1->resize(100, 50);

    QLabel* label2 = new QLabel(ui->tab_2); // 指定的父元素不再是this，而是tab_2
    label2->setText("第2个标签页");
    label2->resize(100, 50);


}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    // 使用addTab方法来创建新的标签页
    // 参数1指定一个QWidget(因为标签页本身也是一个QWidget)
    // 参数1指定标签页的标题
    QWidget* widget = new QWidget(); // 不需要指定父元素，添加到TbelWidget的时候，父元素会自动变成TabWidget
    // 先获取当前有几个标签页
    int cnt = ui->tabWidget->count();
    ui->tabWidget->addTab(widget, "tab " + QString::number(cnt + 1));

    // 在新增的标签页下，再添加一个label
    QLabel* label = new QLabel(widget);
    label->setText("第" + QString::number(cnt + 1) + "个标签页");
    label->resize(100, 50);

    // 设置新标签页被选中
    ui->tabWidget->setCurrentIndex(cnt);
}

void Widget::on_pushButton_2_clicked()
{
    // 先获取到当前被选中的标签页的下标
    int index = ui->tabWidget->currentIndex();
    // 删除
    ui->tabWidget->removeTab(index);
}

void Widget::on_tabWidget_currentChanged(int index)
{
    qDebug() << "当前被选中的标签页是: Tab " << index + 1;
}
